<template>
  <div>
    <PartInfo
      ref="partInfo"
      type="add"
      :partInfoRow="partInfoRow"
      :collapse="true"
      @getEditPartInfo="getEditPartInfo"
      @getAddPartInfo="getAddPartInfo"
      @getNewPartInfo="getNewPartInfo"
      @partSearthSuccess="getEditPartInfo"
    />
    <SearchPart type="add" ptype="SPA" @dblclickPartInfo="setPartInfo" @pdPartNo="pdPartNo" @falsePartNo="falsePartNo" />
    <div class="btnWrap">
      <el-button size="small" @click="$emit('cancel')">关闭</el-button>
      <el-button size="small" type="primary" @click="confirmBtnClick" :style="{ display: 'none' }">保存</el-button>
    </div>
    <!-- 配件库存新增 -->
    <BaseDialog title="配件库存新增" :visible.sync="addPartInfoisShow" destroyOnClose>
      <addPartInfo :formData="formData" @cancel="cancel" @addChange="addChange" />
    </BaseDialog>
    <!-- new配件库存新增 -->
    <BaseDialog title="配件库存新增" :visible.sync="newPartInfoisShow" destroyOnClose>
      <newPartInfo :formData="formData" @cancel="newCancel" @addChange="newChange" />
    </BaseDialog>
  </div>
</template>

<script>
import SearchPart from './SearchPart';
import PartInfo from './PartInfo';
import addPartInfo from './addPartInfo';
import newPartInfo from './newPartInfo';

export default {
  name: 'cgrk_add',
  components: {
    SearchPart,
    PartInfo,
    addPartInfo,
    newPartInfo
  },
  data() {
    return {
      formData: {}, // 传给新增仓库的数据
      addPartInfoisShow: false, // 弹框控制
      partInfoRow: {},
      newPartInfoisShow: false // new 配件弹框
    };
  },
  mounted() {
    window.cgrk_add = this;
    console.log('采购入库 新增 mounted');
  },
  methods: {
    // 取消的时候改变的值
    falsePartNo() {
      this.$refs.partInfo.pj = false;
    },
    // 传的PartNo值
    pdPartNo(PartNo, storageCode) {
      this.$refs.partInfo.pj = true;
      this.$refs.partInfo.formList.find(x => x.fieldName === 'PART_NO').initialValue = PartNo;
      this.$refs.partInfo.formList.find(x => x.fieldName === 'STORAGE_CODE').initialValue = storageCode;
    },
    // 新增仓库保存之后回调的值      ///////
    addChange(partInfo) {
      console.log(partInfo, '新增成功后往主页插入数据');
      this.addPartInfoisShow = false;
      this.$emit('confirm', partInfo);
    },
    // new 新增仓库保存之后回调的值
    newChange(partInfo) {
      console.log('new添加组件被调用');
      this.newPartInfoisShow = false;
      this.$emit('confirm', partInfo);
    },
    // 传值打开弹窗
    getAddPartInfo(row) {
      row.length ? (this.formData = row[0]) : (this.formData = row);
      this.addPartInfoisShow = true;
    },
    // 传值打开弹窗
    getNewPartInfo(row) {
      row.length ? (this.formData = row[0]) : (this.formData = row);
      this.newPartInfoisShow = true;
    },
    newCancel() {
      // 关闭弹窗
      this.newPartInfoisShow = false;
    },
    cancel() {
      this.addPartInfoisShow = false;
    },
    // 确定按钮
    confirmBtnClick() {
      // 收集表单数据 触发 getEditPartInfo 方法
      this.$nextTick(() => {
        this.$refs.partInfo.$refs.form.SUBMIT_FORM();
      });
    },
    // 整合后的配件信息
    setPartInfo(partInfo) {
      console.log('整合后的配件信息 浅拷贝', JSON.stringify(partInfo, null, 2));
      this.partInfoRow = partInfo;
      console.log('赋值后的partInfoRow', this.partInfoRow);
      // this.$refs.partInfo.initDataSource(partInfo);
    },
    // 收集 表单数据回调
    getEditPartInfo(partInfo) {
      console.log('表单数据', JSON.stringify(partInfo, null, 2));
      // 给父表加的数据
      // if () {},
      this.$emit('confirm', partInfo);
      //   this.$notify.success({
      //   title: '提示',
      //   message: '添加成功',
      // });
    }
  }
};
</script>

<style scoped>
.btnWrap {
  position: absolute;
  left: 0px;
  bottom: 0px;
  right: 0px;
  z-index: 9;
  border-top: 1px solid rgb(233, 233, 233);
  padding: 10px 20px;
  background: rgb(255, 255, 255);
  text-align: right;
}
</style>
